1. Field of the Invention
This invention pertains generally to internetwork router operating systems. More particularly, the invention is a method and system for managing data externally in a centralized database system for a router operating system.
2. The Prior Art
In a routing device, internetwork operating systems (IOS) or more commonly, router operating systems (OS), provide the basic command functions for the routing device as well as various subsystem components which provide specific functions or routines provided by the routing device.
In general, routing devices carry out the operation of reliably transferring network messages or packets between a network of coupled devices, or a collection of such networks. A reliable transfer protocol is provided by the IOS for carrying out such operation. Additionally, an interface in communication with a Configuration (config) subsystem is provided which allows a user of the routing device to configure the operations of the routing device.
The user may configure, for example, the IP address of an Ethernet interface facility or the default route for the routing device. A config command issued by the user is received by the config subsystem and processed therein. The config subsystem determines from the config command issued by the user which client subsystem is affected by configuration information contained in the config command. The config subsystem then carries out a communication exchange with the affected client subsystem to deliver the change in configuration information.
However, router devices typically include a plurality of client subsystems which manage specific functions, requiring multiple dependencies between the config subsystem and such client subsystems. Furthermore, client subsystems often have multiple dependencies with other client subsystem. For example, the PPP subsystem is dependent upon the IP subsystem for Internet address information and the AAA subsystem for user authentication and credential information. These and other subsystem dependencies as is known in the art prevent modularity in subsystem design and implementation within the IOS of the router.
Another drawback with current subsystem implementation schemes arises when temporary configuration changes to a subsystem are to be carried out. A temporary change is desired when, for example, a user of the routing device wishes to test a particular configuration to analyze the efficiency of such configuration, but would like the opportunity to subsequently revert or “back-out” of the change if desired. During such a configuration sequence, multiple transactions will typically need to be carried out between various subsystems. For example, where a user configures the IP address of an Ethernet facility port, the config subsystem will communicate the new IP address to the IP subsystem. In turn, the IP subsystem will communicate to the Ethernet subsystem that Ethernet facility port has new IP address information. When the changes are to be aborted or otherwise reverted, a similar chain of communication is necessary to complete the task of reverting prior changes. Such multiple dependencies between the various subsystems of the IOS make common transactions cumbersome and unnecessarily complicated. Furthermore, design and development of the various subsystems of the IOS must take into account these multiple dependencies requiring longer design and development time.
Another situation where a temporary change is desired is when a user connects to the router via a “dial-in” connection port. Dial-in connections are provided by a plurality of subsystem of the IOS. Certain default settings may be configured for most users. However, specialized settings may be configured for certain users, such as network administrators who have particular access privileges, for example. Where a user connects via a dial-in connection, a dialer subsystem communicates with an AAA subsystem to provide name and password information. Responsive to this communication, the AAA subsystem determines the access credentials of the dial-in user from the name and password information and communicates with a PPP subsystem. The access credentials provide, among other things, the configurations for the user at the dial-in connection port. The PPP subsystem then sets the port configurations for the user according to the user's access credentials thereby enabling point-to-point communication for the user.
When the user disconnects, the PPP subsystem, the AAA subsystem and the dialer subsystem need to communicate with each other to restore default settings. This situation presents another illustration where multiple dependencies between the various subsystems of the IOS make common transactions cumbersome and unnecessarily complicated.
Yet another disadvantage with current IOS transaction methods arises when a configuration command issued by a remote user of the routing device causes the user to be disconnected. Such configuration commands while not permanent prevent the user from remotely reconnecting to the routing device to correct the configuration. Normally, the user would need to directly interface with the routing device to correct the configuration, or otherwise manually restart or “reboot” the routing device to discard the current configuration and restore the previous configuration. Current transaction methods do not provide a facility or method for sensing such disconnection events and for restoring the previous connection upon the discovery of such disconnection.
Copending application entitled METHOD AND SYSTEM FOR EXECUTING, TRACKING AND RESTORING TEMPORARY ROUTER CONFIGURATION CHANGE USING A CENTRALIZED DATABASE, filed Oct. 12, 1999, describes a method and system for transacting routing device configurations using a centralized information provider or database system and is incorporated herein by reference. In this copending application, a centralized database system (sysDB) is provided within the IOS which manages transactions on router configuration data. The sysDB receives configuration commands from various IOS subsystems. Such commands may include, for example, a request to change configuration data and a request to revert changes made to the configuration data. Use of the sysDB allows the system to be modular and avoid unnecessary dependencies between subsystem components.
However, the centralized database scheme is somewhat inefficient when the information stored in the database contains a large amount of data or is changing very fast. For example, when the data in the database is constantly changing (such as statistic counters), the sysDB may have to continuously perform transaction routines, notification routines, and verification routines. The verification routine is described in further detail in copending application entitled METHOD AND SYSTEM FOR VERIFYING CONFIGURATION TRANSACTIONS MANAGED BY A CENTRALIZED DATABASE filed on Oct. 12, 1999 which is incorporated by reference herein. The notification routine is described in further detail in copending application entitled SUBSYSTEM APPLICATION NOTIFICATION METHOD IN A CENTRALIZED ROUTER DATABASE, filed Oct. 12, 1999 and is incorporated herein by reference.
On the other hand, if the constantly changing data is stored outside (externally) of the centralized database, subsystem applications may become aware of the other applications storing the external data, which may cause the system to become dependent upon these other applications, and therefore cause the system to be non-modular.
Accordingly, there is a need for a method and system for externally managing router configuration data in conjunction with a centralized database which allows the various subsystems of the IOS to be modular and independent. The present invention satisfies these needs, as well as others, and generally overcomes the deficiencies found in the background art.
An object of the invention is to provide a method and system for externally managing router configuration data which overcomes the prior art.
Another object of the invention is to provide a method and system for externally managing router configuration data in conjunction with a centralized database system.
Another object of the invention is to provide a method and system for externally managing router configuration data which does not require multiple dependencies between subsystem applications of the router.
Another object of the invention is to provide a method and system for externally managing router configuration data which allows the subsystem applications of the router to be modular and independent of each other.
Further objects and advantages of the invention will be brought out in the following portions of the specification, wherein the detailed description is for the purpose of fully disclosing the preferred embodiment of the invention without placing limitations thereon.